package com.shujia.scala

import java.io.File

import scala.io.Source


object Demo19Implicit {
  def main(args: Array[String]): Unit = {
    /**
      * 隐式转换类
      *
      * 隐式转换：可以动态给类的对象增加新的方法
      *
      */

    val file = new File("java/data/students.txt")

    //Source.fromFile(file).getLines().foreach(println)

    val lines = file.read()

    lines.foreach(println)

    println(file.getClass)

  }

  /**
    * 隐式转换类   童泰给类的对象增加新的方法
    * 和类名无关  和构造函数的参数类型有关
    * 同一个作用域里面不能有两个类型一样的隐式转换类
    */
  implicit class Read(file: File) {

    def read(): List[String] = {
      Source.fromFile(file).getLines().toList
    }
  }


}



